package com.hnas.trade.service;

import java.util.List;

import com.hnas.common.service.dto.search.DTOCommoditOrderSearch;
import com.hnas.common.service.dto.search.DTOECardOrderSearch;
import com.hnas.common.service.dto.search.DTOOrderSearch;
import com.hnas.core.dto.DTOPagedList;
import com.hnas.ecard.service.dto.DTOCommoditOrder;
import com.hnas.ecard.service.dto.DTOECardOrder;
import com.hnas.ecard.service.dto.DTOSaleCardOrder;
import com.hnas.trade.orm.Order;
import com.hnas.trade.service.dto.DTOOrder;

public interface OrderService {

	Order saveOrUpdate(DTOOrder dto) throws Exception;//创建(修改)订单

	DTOOrder getByOrderNo(String orderNo);

	List<DTOOrder> getUnSuccessOrderList();

	void updateCouponStatus(String orderNo);
	
	List<DTOOrder> getScanMrchPayingOrderList();
	/**
	 * 获取记账的订单
	 * @return
	 */
	List<DTOOrder> getAccountOrderList();
	
	/**
	 * 修改订单并交易记录
	 * @param dto
	 * @return
	 * @throws Exception
	 */
	Order updateOrderSaveTradeRecord(DTOOrder dto) throws Exception;//创建(修改)订单

	
	/**
	 * 查询订单
	 * @param criteria
	 * @return
	 */
	DTOPagedList<DTOOrder> search(DTOOrderSearch criteria);

	List<DTOSaleCardOrder> listOrderNoPay();

	DTOPagedList<DTOCommoditOrder> searchCommoditOrder(DTOCommoditOrderSearch criteria);

	DTOPagedList<DTOECardOrder> searchECardOrder(DTOECardOrderSearch criteria);
}
